package net.lab1024.sa.admin.module.business.aps.domain.form;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * APS更新表单
 *
 * @Author 1024创新实验室
 * @Date 2025-01-28
 * @Wechat zhuoda1024
 * @Email lab1024@163.com
 * @Copyright <a href="https://1024lab.net">1024创新实验室</a>
 */
@Data
public class ApsUpdateForm {

    @Schema(description = "APS ID")
    @NotNull(message = "APS ID不能为空")
    private Long apsId;

    @Schema(description = "计划名称")
    @NotBlank(message = "计划名称不能为空")
    private String planName;

    @Schema(description = "计划描述")
    private String planDescription;

    @Schema(description = "计划状态")
    private Integer status;

    @Schema(description = "优先级 (1-10，数字越大优先级越高)")
    @NotNull(message = "优先级不能为空")
    private Integer priority;

    @Schema(description = "计划开始时间")
    @NotNull(message = "计划开始时间不能为空")
    private LocalDateTime planStartTime;

    @Schema(description = "计划结束时间")
    @NotNull(message = "计划结束时间不能为空")
    private LocalDateTime planEndTime;

    @Schema(description = "实际开始时间")
    private LocalDateTime actualStartTime;

    @Schema(description = "实际结束时间")
    private LocalDateTime actualEndTime;

    @Schema(description = "负责人ID")
    @NotNull(message = "负责人不能为空")
    private Long responsibleUserId;

    @Schema(description = "负责人姓名")
    @NotBlank(message = "负责人姓名不能为空")
    private String responsibleUserName;

    @Schema(description = "备注")
    private String remark;
}